﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace Adaptive.Foundation.Parsing
{
    /// <summary>
    /// Provides a signature definition for objects that represent and implement
    /// specific parsing algorithms.
    /// </summary>
    public interface IParsingProvider
    {
        /// <summary>
        /// Gets the rules defined in the provider.
        /// </summary>
        /// <returns>
        /// A <see cref="ParsingTokenRuleCollection"/> containing the rule definitions.
        /// </returns>
        ParsingTokenRuleCollection GetRules();
        /// <summary>
        /// Gets an instance of the parser.
        /// </summary>
        /// <returns>
        /// An <see cref="IParser"/> instance.
        /// </returns>
        IParser GetParser();
    }
}